package cn.ld.module.infra.convert.config;

import cn.ld.framework.common.pojo.PageResult;
import cn.ld.module.infra.controller.admin.config.vo.ConfigOutVO;
import cn.ld.module.infra.controller.admin.config.vo.ConfigSaveInVO;
import cn.ld.module.infra.dal.entity.config.ConfigEntity;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface ConfigConvert {

    ConfigConvert INSTANCE = Mappers.getMapper(ConfigConvert.class);

    PageResult<ConfigOutVO> convertPage(PageResult<ConfigEntity> page);

    List<ConfigOutVO> convertList(List<ConfigEntity> list);

    @Mapping(source = "configKey", target = "key")
    ConfigOutVO convert(ConfigEntity bean);

    @Mapping(source = "key", target = "configKey")
    ConfigEntity convert(ConfigSaveInVO bean);

}
